package com.wanli.agent.homepage;

import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.KeyEvent;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;

import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.wanli.agent.R;
import com.wanli.agent.base.BaseActivity;
import com.wanli.agent.base.DataCallBack;
import com.wanli.agent.bean.BankGetBankBean;
import com.wanli.agent.event.ChooseBankEvent;
import com.wanli.agent.homepage.adapter.ChooseBankAresListAdapter;
import com.wanli.agent.homepage.adapter.ChooseBankBranchListAdapter;
import com.wanli.agent.homepage.adapter.ChooseBankCityListAdapter;
import com.wanli.agent.homepage.adapter.ChooseBankListAdapter;
import com.wanli.agent.homepage.model.HomePageModelImpl;
import com.wanli.agent.homepage.model.IHomePageModel;
import com.wanli.agent.utils.ToastUtil;
import com.wanli.agent.widget.AppTitleBar;
import com.wanli.agent.widget.ViewLoading;

import org.greenrobot.eventbus.EventBus;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

public class ChooseBankActivity extends BaseActivity {

    @BindView(R.id.title_bar)
    AppTitleBar titleBar;
    @BindView(R.id.recyclerView)
    RecyclerView recyclerView;
    @BindView(R.id.tv_title)
    TextView tvTitle;
    @BindView(R.id.edit_search)
    EditText editSearch;
    @BindView(R.id.view_cancel)
    View viewCancel;
    @BindView(R.id.tv_search)
    TextView tvSearch;
    @BindView(R.id.ll_search)
    LinearLayout llSearch;
    @BindView(R.id.edit_search1)
    EditText editSearch1;
    @BindView(R.id.view_cancel1)
    View viewCancel1;
    @BindView(R.id.tv_search1)
    TextView tvSearch1;
    @BindView(R.id.ll_search1)
    LinearLayout llSearch1;
    @BindView(R.id.edit_search2)
    EditText editSearch2;
    @BindView(R.id.view_cancel2)
    View viewCancel2;
    @BindView(R.id.tv_search2)
    TextView tvSearch2;
    @BindView(R.id.ll_search2)
    LinearLayout llSearch2;
    private ChooseBankListAdapter listAdapter;
    private ChooseBankAresListAdapter listAresAdapter;
    private ChooseBankCityListAdapter listCityAdapter;
    private ChooseBankBranchListAdapter listBranchAdapter;
    private List<String> bankList = new ArrayList<>();
    private List<String> bankAreaList = new ArrayList<>();
    private List<String> bankCityList = new ArrayList<>();
    private List<BankGetBankBean.DataBean> bankBranchList = new ArrayList<>();


    private String bankName;
    private String bankArea;
    private String bankCity;
    private IHomePageModel homePageModel;
    private String keyword1 = "";
    private String keyword2 = "";
    private String keyword = "";
    private List<BankGetBankBean.DataBean> beanList = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_choose_bank);
        ButterKnife.bind(this);
        initView();
    }


    public void initView() {
        homePageModel = new HomePageModelImpl();

        //银行名称
        bankList = new ArrayList<>();
        bankList.addAll(Arrays.asList(bankArray));
        listAdapter = new ChooseBankListAdapter(bankList);
        recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
        recyclerView.setAdapter(listAdapter);

        //地区
        bankAreaList = new ArrayList<>();
        bankAreaList.addAll(Arrays.asList(bankAreaArray));
        listAresAdapter = new ChooseBankAresListAdapter(bankAreaList);
        //城市
        listCityAdapter = new ChooseBankCityListAdapter(bankCityList);

        //分行
        listBranchAdapter = new ChooseBankBranchListAdapter(bankBranchList);

        listAdapter.setOnCallBackListener(bankName -> {
            this.bankName = bankName;
            tvTitle.setText("第二步：选择城市");
            llSearch1.setVisibility(View.GONE);
            llSearch2.setVisibility(View.VISIBLE);
            recyclerView.setAdapter(listAresAdapter);
        });

        listAresAdapter.setOnCallBackListener(bankArea -> {
            this.bankArea = bankArea;
//            tvTitle.setText("第三步：选择城市");
//            requestBankGetCity();
            requestBankGetBranchKDB();
        });

//        listCityAdapter.setOnCallBackListener(bankCity -> {
//            this.bankCity = bankCity;
//            requestBankGetBranch();
//        });

        listBranchAdapter.setOnCallBackListener((bankBranch, bankCode) -> {
            EventBus.getDefault().post(new ChooseBankEvent(bankName,bankBranch, bankCode));
            finish();
        });

        editSearch.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (actionId == EditorInfo.IME_ACTION_SEARCH) {
                    if (!TextUtils.isEmpty(keyword)) {
                        bankBranchList.clear();
                        for (BankGetBankBean.DataBean key : beanList) {
                            if (key.getBranchName().contains(keyword) || key.getBranchName().equals(keyword)) {
                                bankBranchList.add(key);
                            }
                        }
                        listBranchAdapter.notifyDataSetChanged();
                    }
                    return true;
                }
                return false;
            }
        });
        editSearch.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                keyword = editSearch.getText().toString().trim();
                if (!TextUtils.isEmpty(keyword)) {
                    viewCancel.setVisibility(View.VISIBLE);
                } else {
                    viewCancel.setVisibility(View.GONE);
                }
            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });

        editSearch1.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (actionId == EditorInfo.IME_ACTION_SEARCH) {
                    if (!TextUtils.isEmpty(keyword1)) {
                        bankList.clear();
                        for (String key : Arrays.asList(bankArray)) {
                            if (key.contains(keyword1) || key.equals(keyword1)) {
                                bankList.add(key);
                            }
                        }
                        listAdapter.notifyDataSetChanged();
                    }
                    return true;
                }
                return false;
            }
        });
        editSearch1.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                keyword1 = editSearch1.getText().toString().trim();
                if (!TextUtils.isEmpty(keyword1)) {
                    viewCancel1.setVisibility(View.VISIBLE);
                } else {
                    viewCancel1.setVisibility(View.GONE);
                }
            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });

        editSearch2.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (actionId == EditorInfo.IME_ACTION_SEARCH) {
                    if (!TextUtils.isEmpty(keyword2)) {
                        bankAreaList.clear();
                        for (String key : Arrays.asList(bankAreaArray)) {
                            if (key.contains(keyword2) || key.equals(keyword2)) {
                                bankAreaList.add(key);
                            }
                        }
                        listAresAdapter.notifyDataSetChanged();
                    }
                    return true;
                }
                return false;
            }
        });
        editSearch2.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                keyword2 = editSearch2.getText().toString().trim();
                if (!TextUtils.isEmpty(keyword2)) {
                    viewCancel2.setVisibility(View.VISIBLE);
                } else {
                    viewCancel2.setVisibility(View.GONE);
                }
            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });
    }


//    public void requestBankGetCity() {
//        ViewLoading.showProgress(mActivity);
//        homePageModel.requestBankGetCity(bankName, bankArea, new DataCallBack<BankGetCityBean>() {
//            @Override
//            public void onSuccessful(BankGetCityBean bean) {
//                bankCityList.addAll(bean.getData());
//                recyclerView.setAdapter(listCityAdapter);
//            }
//
//            @Override
//            public void onFailed(String msg, String code) {
//
//            }
//        });
//    }

    /**
     * 分行
     */
//    public void requestBankGetBranch() {
//        ViewLoading.showProgress(mActivity);
//        homePageModel.requestBankGetBranch(bankName, bankArea, bankCity, new DataCallBack<BankGetCityBean>() {
//            @Override
//            public void onSuccessful(BankGetCityBean bean) {
//                beanList = bean.getData();
//                bankBranchList.addAll(beanList);
//                recyclerView.setAdapter(listBranchAdapter);
//                llSearch.setVisibility(View.VISIBLE);
//                tvTitle.setText("第三步：选择开户行");
//            }
//
//            @Override
//            public void onFailed(String msg, String code) {
//
//            }
//        });
//    }

    /**
     * 分行 开店宝
     */
    public void requestBankGetBranchKDB() {
        ViewLoading.showProgress(mActivity);
        homePageModel.requestBankGetBranchKDB(bankName, bankArea, new DataCallBack<BankGetBankBean>() {
            @Override
            public void onSuccessful(BankGetBankBean bean) {
                beanList = bean.getData();
                bankBranchList.addAll(beanList);
                recyclerView.setAdapter(listBranchAdapter);
                llSearch2.setVisibility(View.GONE);
                llSearch.setVisibility(View.VISIBLE);
                tvTitle.setText("第三步：选择开户行");
            }

            @Override
            public void onFailed(String msg, String code) {

            }
        });
    }

    @OnClick({R.id.view_cancel1, R.id.tv_search1, R.id.view_cancel2, R.id.tv_search2, R.id.view_cancel, R.id.tv_search})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.view_cancel1:
                editSearch1.setText("");
                keyword1 = "";
                bankList.clear();
                bankList.addAll(Arrays.asList(bankArray));
                listAdapter.notifyDataSetChanged();
                break;
            case R.id.tv_search1:
                if (TextUtils.isEmpty(keyword1)) {
                    ToastUtil.showShort("请输入搜索内容");
                    return;
                }
                bankList.clear();
                for (String key : Arrays.asList(bankArray)) {
                    if (key.contains(keyword1) || key.equals(keyword1)) {
                        bankList.add(key);
                    }
                }
                listAdapter.notifyDataSetChanged();
                break;
            case R.id.view_cancel2:
                editSearch2.setText("");
                keyword2 = "";
                bankAreaList.clear();
                bankAreaList.addAll(Arrays.asList(bankAreaArray));
                listAresAdapter.notifyDataSetChanged();
                break;
            case R.id.tv_search2:
                if (TextUtils.isEmpty(keyword2)) {
                    ToastUtil.showShort("请输入搜索内容");
                    return;
                }
                bankAreaList.clear();
                for (String key : Arrays.asList(bankAreaArray)) {
                    if (key.contains(keyword2) || key.equals(keyword2)) {
                        bankAreaList.add(key);
                    }
                }
                listAresAdapter.notifyDataSetChanged();
                break;
            case R.id.view_cancel:
                editSearch.setText("");
                keyword = "";

                bankBranchList.clear();
                bankBranchList.addAll(beanList);
                listBranchAdapter.notifyDataSetChanged();
                break;
            case R.id.tv_search:
                if (TextUtils.isEmpty(keyword)) {
                    ToastUtil.showShort("请输入搜索内容");
                    return;
                }
                bankBranchList.clear();
                for (BankGetBankBean.DataBean key : beanList) {
                    if (key.getBranchName().contains(keyword) || key.getBranchName().equals(keyword)) {
                        bankBranchList.add(key);
                    }
                }
                listBranchAdapter.notifyDataSetChanged();
                break;
        }
    }


    private String[] bankArray = {
            "( 澳门地区 ) 中国工商银行",
            "( 香港地区 ) 中国工商银行",
            "安徽省农村商业银行",
            "鞍山银行",
            "奥地利中央合作银行",
            "澳门清算行",
            "澳新银行",
            "包商银行",
            "宝鸡市农村信用社",
            "保定银行",
            "北京村镇银行",
            "北京银行",
            "本溪市商业银行",
            "比利时联合银行",
            "渤海银行",
            "沧州银行",
            "长安银行",
            "长城华西银行股份有限公司",
            "长沙银行股份有限公司",
            "长治银行",
            "常德市农村商业银行",
            "常州市农村信用社",
            "朝阳银行",
            "成都农商银行",
            "成都银行",
            "承德银行",
            "城市村镇银行",
            "城市商业银行",
            "城市信用社",
            "村镇银行",
            "大华银行",
            "大连银行",
            "大同银行",
            "大新银行",
            "大众银行",
            "丹东银行",
            "德国商业银行",
            "德意志银行",
            "德州银行",
            "东方汇理银行",
            "东京三菱银行",
            "东亚银行",
            "东营银行",
            "鄂尔多斯银行",
            "法国外贸银行",
            "法国兴业银行",
            "丰业银行",
            "福建海峡银行",
            "福建农村信用社农商银行",
            "抚顺银行",
            "阜新银行",
            "富邦华一银行",
            "富滇银行",
            "甘肃农村信用社",
            "甘肃银行",
            "赣州银行",
            "工商银行",
            "广东发展银行",
            "广东华兴银行",
            "广东南粤银行",
            "广西北部湾银行股份有限公司",
            "广州银行",
            "贵阳银行",
            "贵州省农村信用社",
            "贵州省农村信用社联合社",
            "贵州银行",
            "桂林银行",
            "国家开发银行",
            "国泰君安证券股份有限公司",
            "哈尔滨银行股份有限公司",
            "哈密市商业银行",
            "海口联合农村商业银行",
            "海南省农村信用社",
            "海南银行",
            "邯郸银行",
            "韩国产业银行",
            "韩国企业银行",
            "韩亚银行",
            "汉口银行",
            "杭州联合农村商业银行",
            "杭州银行",
            "河北省农村信用社联合社",
            "河北银行",
            "荷兰合作银行",
            "荷兰商业银行",
            "恒丰银行",
            "恒生银行",
            "衡水银行",
            "湖北银行",
            "湖南省农村商业银行",
            "湖州银行",
            "葫芦岛银行",
            "花旗银行",
            "华美银行",
            "华侨银行",
            "华融湘江银行",
            "华商银行",
            "华夏银行",
            "徽商银行",
            "吉林银行",
            "集友银行",
            "济宁银行",
            "嘉兴银行",
            "建东银行",
            "江苏长江商业银行",
            "江苏银行",
            "江西银行",
            "交通银行",
            "焦作中旅银行股份有限公司",
            "金华银行",
            "锦州银行",
            "晋城银行",
            "晋商银行",
            "晋中银行",
            "九江银行",
            "库尔勒银行",
            "昆仑银行",
            "莱商银行",
            "兰州银行",
            "廊坊银行",
            "乐山市商业银行",
            "辽宁省农村信用社联合社",
            "辽阳银行",
            "廖创兴银行",
            "临商银行",
            "龙江银行",
            "泸州市商业银行",
            "洛阳银行",
            "马来亚银行",
            "美国银行",
            "蒙特利尔银行",
            "绵阳市商业银行",
            "摩根大通银行",
            "摩根士丹利国际银行",
            "内蒙古农村商业银行",
            "内蒙古银行",
            "内蒙古自治区农村信用社联合社",
            "南充市商业银行",
            "南京银行",
            "南康赣商村镇银行",
            "南洋商业银行",
            "宁波东海银行",
            "宁波通商银行",
            "宁波银行",
            "宁夏黄河农村商业银行",
            "宁夏银行股份有限公司",
            "农村合作信用社",
            "农村合作银行",
            "农村商业银行",
            "农村信用合作社",
            "农村信用社",
            "攀枝花市商业银行",
            "平安银行",
            "平顶山银行",
            "齐鲁银行",
            "齐商银行",
            "秦皇岛银行",
            "青岛银行",
            "青海海东平安农村商业银行股份有限公司",
            "青海省农村信用社联合社",
            "青海银行",
            "曲靖市商业银行",
            "泉州银行",
            "日照银行",
            "瑞士信贷第一波士顿银行",
            "瑞穗银行",
            "三井住友银行",
            "山东临沂兰山农村商业银行股份有限公司",
            "山口银行",
            "陕西省农村信用社联合社",
            "上海—巴黎国际银行",
            "上海农村商业银行",
            "上海浦东发展银行",
            "上海商业银行",
            "上海银行",
            "上饶银行",
            "绍兴银行",
            "深圳农村商业银行",
            "盛京银行",
            "石嘴山银行",
            "首都银行",
            "四川省农村信用社联合社",
            "苏州银行",
            "台州银行股份有限公司",
            "泰安银行",
            "泰华农民银行",
            "唐山银行",
            "天津滨海农村商业银行股份有限公司",
            "天津银行",
            "铁岭银行",
            "威海市商业银行",
            "潍坊银行",
            "温州银行",
            "乌海银行",
            "乌鲁木齐银行",
            "武汉农村商业银行",
            "西安银行",
            "西藏银行",
            "厦门国际银行",
            "厦门银行",
            "香港上海汇丰银行",
            "香港星展銀行",
            "湘乡市村镇银行",
            "新韩银行",
            "新疆汇和银行",
            "新疆维吾尔自治区农村信用社联合社",
            "新疆银行股份有限公司",
            "兴业银行",
            "邢台银行",
            "雅安市商业银行",
            "烟台银行",
            "阳泉市商业银行",
            "洋县农村信用合作联社",
            "宜宾市商业银行",
            "意大利联合圣保罗银行",
            "营口沿海银行",
            "营口银行",
            "友利银行",
            "玉溪市商业银行",
            "裕信银行",
            "云南省农村信用社联合社",
            "枣庄银行",
            "渣打银行",
            "张家口银行",
            "招商银行",
            "浙江稠州商业银行",
            "浙江民泰商业银行",
            "浙江省农村信用社联合社",
            "浙江泰隆商业银行",
            "浙商银行",
            "郑州银行",
            "支付业务收费专户",
            "中国工商银行",
            "中国光大银行",
            "中国建设银行",
            "中国进出口银行",
            "中国民生银行",
            "中国农业发展银行",
            "中国农业银行",
            "中国农业银行景德镇新时代分理处",
            "中国农业银行无锡城中支行",
            "中国银联",
            "中国银行",
            "中国银行间外汇交易中心",
            "中国邮政储蓄银行",
            "中信银行",
            "中央国债登记结算有限责任公司",
            "中原银行",
            "众邦银行",
            "重庆富民银行股份有限公司",
            "重庆农村商业银行",
            "重庆银行股份有限公司"
    };

    private String[] bankAreaArray = {
            "南平",
            "哈尔滨",
            "常德",
            "白山",
            "儋州",
            "怒江傈僳族自治州",
            "平顶山",
            "台州",
            "安庆",
            "泰安",
            "吐鲁番",
            "武威",
            "安阳",
            "德州",
            "景德镇",
            "聊城",
            "平凉",
            "淮北",
            "塔城地区",
            "赣州",
            "长治",
            "郑州",
            "昌吉回族自治州",
            "石家庄",
            "温州",
            "上海",
            "湛江",
            "牡丹江",
            "赤峰",
            "锡林郭勒盟",
            "运城",
            "宜昌",
            "石嘴山",
            "渭南",
            "马鞍山",
            "大兴安岭地区",
            "淮南",
            "扬州",
            "江门",
            "防城港",
            "鹰潭市",
            "林芝",
            "库尔勒市",
            "莱芜",
            "中山",
            "襄樊",
            "南宁",
            "三亚",
            "常州",
            "鞍山",
            "迪庆",
            "辽阳",
            "临汾",
            "太原",
            "南阳",
            "黄南藏族自治州",
            "朔州",
            "阿勒泰地区",
            "邵阳",
            "南昌",
            "金华",
            "吴忠",
            "那曲",
            "湘潭",
            "张掖",
            "樟木口岸镇",
            "鄂尔多斯",
            "陇南",
            "黔东南苗族侗族自治州",
            "梧州",
            "益阳",
            "汕头",
            "呼和浩特",
            "万州",
            "吉首市",
            "丽江",
            "阳江",
            "晋城",
            "芜湖",
            "鹰潭",
            "黄山",
            "福州",
            "拉萨",
            "黑河",
            "驻马店",
            "铁岭",
            "吕梁",
            "济源",
            "潍坊",
            "新余",
            "凉山彝族自治州",
            "包头",
            "孝感",
            "盐城",
            "广安",
            "徐州",
            "广州",
            "莆田",
            "桂林",
            "白城",
            "四平",
            "无锡",
            "海北藏族自治州",
            "来宾",
            "萍乡",
            "北海",
            "县级",
            "乌海",
            "南京",
            "文山壮族苗族自治州",
            "西宁",
            "成都",
            "佛山",
            "衡水",
            "阿勒泰市",
            "张家口",
            "上饶",
            "鄂州",
            "崇左",
            "中山市",
            "长春",
            "昌都",
            "霍州市",
            "伊犁哈萨克自治州",
            "巢湖",
            "资阳",
            "信阳",
            "双鸭山",
            "怀化",
            "乐山",
            "滨州",
            "葫芦岛",
            "通辽",
            "河池",
            "固原",
            "荆州",
            "安顺",
            "蚌埠",
            "铜仁",
            "唐山",
            "忻州",
            "临沧",
            "黔南布依族苗族自治州",
            "重庆",
            "大同",
            "松原",
            "内江",
            "伊春",
            "开封",
            "贵港",
            "连云港",
            "七台河",
            "鹤壁",
            "淮安",
            "洛阳",
            "清远",
            "烟台",
            "广元",
            "郴州",
            "杭州",
            "佳木斯",
            "黔江",
            "漳州",
            "六盘水",
            "十堰",
            "淄博",
            "咸宁",
            "普洱",
            "惠州",
            "乌兰察布",
            "肇庆",
            "汉中",
            "钦州",
            "山南",
            "鹤岗",
            "天水",
            "保山",
            "衢州",
            "临沂",
            "盘锦",
            "宜宾",
            "河源",
            "锦州",
            "潮州",
            "临夏回族自治州",
            "克孜勒苏柯尔克孜自治州",
            "通化",
            "六安",
            "白银",
            "大庆",
            "贺州",
            "济宁",
            "濮阳",
            "兰州",
            "阿里地区",
            "吉林",
            "庆阳",
            "宜春",
            "陵水",
            "呼伦贝尔",
            "毕节市",
            "昭通",
            "娄底",
            "涪陵",
            "东莞",
            "雅安",
            "哈密",
            "大连",
            "宿迁",
            "邢台",
            "沈阳",
            "北京",
            "泉州",
            "泸州",
            "襄阳",
            "茂名",
            "青岛",
            "玉林",
            "永州",
            "德阳",
            "许昌",
            "珠海",
            "营口",
            "亳州",
            "抚顺",
            "宝鸡",
            "本溪",
            "深圳",
            "石河子",
            "丹东",
            "和田地区",
            "承德",
            "榆林",
            "大理白族自治州",
            "济南",
            "金昌",
            "株洲",
            "沧州",
            "海南",
            "东营",
            "百色",
            "德宏傣族景颇族自治州",
            "巴彦淖尔",
            "阜阳",
            "云浮",
            "韶关",
            "延边朝鲜族自治州",
            "普洱",
            "儋州市",
            "酒泉",
            "楚雄彝族自治州",
            "廊坊",
            "延安",
            "黄石",
            "吉林",
            "阜新",
            "眉山",
            "揭阳",
            "长沙",
            "绵阳",
            "长顺县",
            "宣城",
            "枣庄",
            "仙桃",
            "商丘",
            "黄冈",
            "达州市",
            "贵阳",
            "菏泽",
            "果洛藏族自治州",
            "湖州",
            "秦皇岛",
            "三门峡",
            "玉溪",
            "巴中",
            "九江",
            "漯河",
            "海南藏族自治州",
            "商洛",
            "三明",
            "龙岩",
            "定西",
            "昆明",
            "南充",
            "海西蒙古族藏族自治州",
            "毕节",
            "银川",
            "海东市",
            "丽水",
            "岳阳",
            "焦作",
            "甘南藏族自治州",
            "塔城",
            "荆门",
            "周口",
            "随州",
            "威海",
            "西双版纳傣族自治州",
            "鸡西",
            "甘孜藏族自治州",
            "潜江",
            "齐齐哈尔",
            "朝阳市",
            "嘉兴",
            "曲靖",
            "阿克苏地区",
            "乌鲁木齐",
            "自贡",
            "汕尾",
            "克拉玛依",
            "日照",
            "合肥",
            "巴音郭楞蒙古自治州",
            "海口",
            "镇江",
            "兴安盟",
            "恩施州",
            "嘉峪关",
            "舟山",
            "遂宁",
            "保定",
            "张家界",
            "嘉峪关市",
            "池州",
            "辽源",
            "中卫",
            "武汉",
            "苏州",
            "吉安",
            "博尔塔拉蒙古自治州",
            "宿州",
            "晋中",
            "绥化",
            "湘西土家族苗族自治州",
            "大理市",
            "西安",
            "阳泉",
            "铜川",
            "绍兴",
            "梅州",
            "琼海",
            "咸阳",
            "抚州",
            "喀什",
            "迪庆州",
            "阿坝",
            "天津",
            "遵义",
            "厦门",
            "安康",
            "攀枝花",
            "红河哈尼族彝族自治州",
            "邯郸",
            "滁州",
            "宁波",
            "柳州",
            "黔西南布依族苗族自治州",
            "玉树藏族自治州",
            "南通",
            "阿拉善盟",
            "日喀则",
            "铜陵",
            "泰州",
            "新乡",
            "宁德",
            "衡阳"
    };
}
